/**
 * 根据横竖屏判断是否显示遮罩
 * @param callback
 * @author 卢忠宽
 */

function maskControl(callback) {
  if (!callback) {
    console.error('callback is Not Found');
    return;
  }

  let shouldStart = true;

  const handleOrientation = ({ gamma, beta }) => {
    // 监听手机方向函数多次触发，性能优化
    if (!shouldStart) return;
    shouldStart = false;
    setTimeout(() => {
      shouldStart = true;
    }, 500);

    // 是否隐藏遮罩 （横屏竖屏不是决定的横屏竖屏）
    const isHorizontal = ((beta < 20 || beta > -20) && (gamma > 45 || gamma < 0)) || gamma === null;
    const isVertical = (gamma > -30 && gamma < 30) || gamma === null;

    // 回掉方法
    callback({
      isHorizontal, isVertical, gamma, beta,
    });
  };

  // 监听手机方向
  window.addEventListener('deviceorientation', handleOrientation);
}
